Data network communication is typically characterized by point-to-point, i.e. unicast, connections. As shown in FIG. 1a, typical unicast communication involves two-way communications between a client device 10 that requests information and a server device 20 that provides the requested data objects. To initiate a data transmission the client sends a request identifying the client's address and the requested data object. Clearly, the request must also contain the server's address to reach its intended destination. Upon receipt of the request the server will collect the requested data objects and deliver them to the client's address identified in the request. This system has attained a high level of success. It is not optimal, however, for every type of data delivery.
One key disadvantage of a typical unicast system is that it is inefficient for the delivery of data to a large group of clients. FIG. 1b clearly shows the reason for this inefficiency. If multiple clients 10 attempt to simultaneously access a particular data object, the server's 20 resources can be quickly overwhelmed. With two users trying to access the data object, as shown in the figure, the server must split its available bandwidth and computational resources to receive and process the various data requests. The bandwidth, however, is used to send out what are effectively identical copies of requested information. The server must also monitor the quality of the data object delivery and respond to requests for the retransmission of packets that do not arrive at a particular client's device. The inefficiency of this design does not present a problem if only two users attempt to access a data object. It is apparent, however, that as the number of simultaneous users accessing a server grows it will eventually push the server past its operational capacity.
These inefficiencies can be avoided by providing a datacast, or filecast, system to broadcast files to a large number of client devices. As shown in FIG. 1c, a datacast delivery model is very efficient for transmitting a data object, or group of objects, to a large number of users. As shown, the basic participants of a datacast operation are the Datacast Server 50, the Channel 60, which is part of the network structure, and client devices 70. In this particular example only three clients are shown, but datacast is intended to support a very large number of clients. Of course, the model would still work with just one client in which case it would represent a variation of unicast.
Before a datacast begins client devices must receive a session description 80, which is simply data used to inform the clients of the datacast's content, location, and time. This is somewhat analogous to using a T.V. guide to find the time and channel a particular show is on. The datacast server will begin to transmit the data object into the designated channel at the appointed time as specified in the session description. Client devices can then “tune-in” to the channel and receive the desired information.
Datacast is more efficient for the transmission of data to a large group of clients for a few reasons. First, datacast can operate with little, or no, client communication to the server. A datacast server, therefore, does not have to address incoming requests. Second, the data is sent out to all users simultaneously. This avoids wasting bandwidth to send a copy of the same file to each requesting client. These advantages are especially useful in a mobile communications environment because mobile devices may have a lack of power and limited memory.